A storage device typically includes a plurality of physical blocks for storing data, and upon receiving a write command from a host, writes data to one of the physical blocks that is designated for writing the data. One type of storage device writes the data according to a stream ID included in the write command. In such a storage device, one or more input blocks for writing data are prepared with respect to each stream ID, and write data associated with a certain stream ID is stored in a physical block associated with the stream ID. Also, write data not associated with the stream ID are stored in a physical block that is not associated with the stream ID. By storing data in accordance with the stream ID, type of data (or lifetime of data) stored in a physical block can be uniform, and as a result, it is possible to increase a probability that the data in the physical block can be erased without transferring part of the data to another physical block (i.e., garbage collection).
However, as the number of streams increases, physical blocks that are used for purposes other than the data writing, such as overprovisioning and garbage collection, decrease. As a result, latency of a response from the host may increase. Further, the number of physical blocks in which an end boundary of written data is not aligned with a boundary of the physical block may increase. In these physical blocks, reliability of the written data may decrease. Also, a write amplification factor (WAF) of the storage device may increase.